package arraylist02;

import java.util.ArrayList;

/*
ArrayList底层原理
    1.ArrayList底层使用的是一个引用类型的数组来存储元素 Object[] elementData
       第一次调用add()方法添加元素的时候，就会使用默认容量初始化这个数组

       int[] arr = new int[10];  //这个数组中所有元素都是int类型，相当于一次性声明了10个int类型的变量
       arr[0] = 13;  // 相当于 int e0 = 13 ;

       Object[] elementData = new Object[10]  //这个数组中所有元素都是Object类型，相当于一次性申明10个Object类型变量
       elementData[0] = "张三"; //相当于 Object e0 = "张三"; 多态
       elemrntData[1] = "李四";

 */
public class ArrayListDemo01 {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();
        al.add("张三");//Object[] elementData = new Object[10]  //所以会有索引
                      //elementData[0] = "张三";
        al.add("李四");//elementData[1] = "李四";
        al.add("王五");//elementData[2] = "王五";
        System.out.println(al);  //默认调用al.toString()

    }
}
